Using configuration identifiers for communicating configuration descriptions

ABSTRACT

The present invention relates to a method, for a first communication device, of maintaining an up-to-date configuration description of a second communication device, said first device comprises a storage medium and is adapted for storing on said storage medium configuration descriptions being uniquely identified by a configuration identifier, the method comprises the steps of:—receiving from the second device information comprising a configuration identifier uniquely identifying the configuration of the second device,—checking whether the configuration description identified by the received configuration identifier is already stored on the storage medium,—if said configuration description is already stored on the storage medium, setting the configuration description corresponding to the received configuration identifier as the active configuration description of the second device,—if said configuration description identified by the configuration identifier is not stored on the storage medium, requesting and receiving the configuration description from said second device, storing said configuration description together with said configuration identifier on said storage medium and setting the configuration corresponding to the received configuration identifier as the active configuration description of the second device. The invention minimizes network load and can especially be advantageously used in UPnP networks.

The present invention relates to a method for a first communicationdevice of maintaining an up-to-date configuration description of asecond communication device. The invention further relates to anapparatus for maintaining an up-to-date configuration description of asecond communication device. The invention also relates to a controlpoint for maintaining an up-to-date configuration description of asecond communication device.

Today a number of technologies exist, where a first device is adapted touse features of a second device either directly or indirectly. In thissituation the first device needs to have information about the presentconfiguration of the second device e.g. to ensure that the features ofthe second device are used optimally. Such technology is used in anumber of applications such as standard computer networks either at homeor within the industry or in situations, where a remote controller isused for controlling home appliances such as televisions, videos orindustrial appliances.

“Universal Plug and Play (UPnP)” is architecture for pervasivepeer-to-peer network connectivity of intelligent appliances, wirelessdevices, and PCs of all form factors. It is designed to bringeasy-to-use, flexible, standard-based connectivity to ad-hoc orunmanaged networks whether in the home, in a small business, publicspaces, or attached to the Internet. Universal Plug and Play is adistributed, open networking architecture that leverages TCP/IP and theWeb technologies to enable seamless proximity networking in addition tocontrol and data transfer among networked devices in the home, office,and public spaces. The UPnP standard is defined in the document“Universal Plug and Play Device Architecture”, Version 1.0, Jun. 8,2000, (c) 1999-2000 Microsoft Corporation.

The UPnP 1.0 device architecture consists of six parts: addressing,discovery, description, control, eventing and presentation. In thepresent document it is the interaction between discovery and descriptionthat is being focused on.

The discovery process describes how devices that implement UPnP 1.0control points can discover other devices that implement UPnP 1.0controlled devices. Basically, a control point can listen toannouncement messages from controlled devices. Controlled devices willperiodically broadcast these announcements. Furthermore, control pointscan explicitly broadcast a request for announcements (a so-calledM-SEARCH), if they do not want to wait for the periodic refresh.Controlled devices react to search requests by unicasting anannouncement to the requesting control point. The discovery process alsodescribes how control points can discover that specific controlleddevices are no longer available. The UPnP 1.0 device architecturedescribes two mechanisms. First, devices can announce that they will nolonger be available by sending a bye-bye message. However, there arecircumstances in which a device cannot send a bye-bye message. Forexample, a device cannot send a bye-bye message in the event of suddenpower loss or a sudden network disconnection. Secondly, to cover theseevents, all device announcements have a time-to-live. When thetime-to-live expires, a control point can assume that the controlleddevice has left the network.

Once a control point has discovered a controlled device, it can proceedto retrieve the device and service descriptions. In general, thediscovery process provides a control point with a rough idea of thecapabilities of a controlled device (device type, provided services).The device and service descriptions explicitly and in detail describethe capabilities of the device (icon, friendly name, manufacturer,supported optional features, vendor extensions, allowed parameters,etc.). Due to their size and complexity, retrieving these descriptionsposes quite a burden on the involved devices and the network. The UPnP1.0 device architecture specifies that a control point can cache thesedescriptions as long as the corresponding discovery advertisements havenot expired. This caching mechanism decreases the load on UPnP devices.However, if, due to a temporary disconnect of the network,advertisements time out, all control points will need to refresh theircache and download the descriptions. This places a peak load on an UPnPdevice, just after a time-out, or when the device first joins a network.

The UPnP 1.0 device architecture describes a two-step mechanism:discovery and description. While these two steps could be combined intoa single step, having a two-step mechanism allows for effective cachingof static information, which reduces the load on the network and theinvolved devices. The first step deals with the dynamics of the network:appearing, changing and disappearing devices. The second step provides adetailed view of the capabilities of the device, but is inherently lessdynamic due to the size of the involved messages. However, the cachingmechanism as described in the UPnP 1.0 architecture leads to peak loadsafter temporary network disconnections: cached information isinvalidated by a time-out and needs to be refreshed.

In U.S. 2002/0027569 it is described how a user control point tool isused for allowing generic discovery, control, and display of UniversalPlug and Play devices from a common user interface. This generic UCPtool provides a common user experience for all UPnP devices, regardlessof their individual manufacturers. The generic UCP tool allows discoveryof UPnP devices by type, by unique device name, or asynchronously. Theuser may select one of the discovered devices, view its properties, andselect one of the services provided for that device to control.Additional information from a service description document may beviewed, and a user may query the value of the state variables and invokean action for a service for the selected UPnP device. The results of theaction are displayed on the tool's UI, as is the eventing informationfor the UPnP device. Status information for operation of the generic UCPtool itself is also provided. The document does not describe how toobtain UPnP device configuration for a control point.

It is therefore an object of the present invention to obtain a solutionto the above mentioned problems.

This is obtained by a method for a first communication device ofmaintaining an up-to-date configuration description of a secondcommunication device, said first device comprises a storage medium andis adapted for storing on said storage medium configuration descriptionsbeing uniquely identified by a configuration identifier, the methodcomprises the steps of:

receiving from the second device information comprising a configurationidentifier uniquely identifying the configuration of the second device,

checking whether the configuration description identified by thereceived configuration identifier is already stored on the storagemedium,

if said configuration description is already stored on the storagemedium, setting the configuration description corresponding to thereceived configuration identifier as the active configurationdescription of the second device,

if said configuration description identified by the configurationidentifier is not stored on the storage medium, requesting and receivingthe configuration description from said second device, storing saidconfiguration description together with said configuration identifier onsaid storage medium and setting the configuration corresponding to thereceived configuration identifier as the active configurationdescription of the second device.

An advantage of this proposal is that it reduces peak loads on UPnPdevices during start-up or network hiccups. Only if a control pointreceives an announcement of a device having an unknown configurationidentifier, the configuration description is downloaded.

The invention further makes it possible for devices to “opt out’, andalso allow devices to give different configuration identifiers to thesame configuration. This last option can be useful, since the internalstate of a device consists of more than the configuration information ofthe device and service description. This might make it difficult todetect that two internal configurations map to the same set ofconfiguration descriptions.

Having configuration identifiers further allows e.g. a first devicebeing a control point to maintain an extensive cache, not only for thecurrent configuration descriptions, but also for past configurationdescriptions, that could be reused in the future.

To minimize required standardization and simplify implementations, eachcontrolled device can independently assign identifiers to its ownconfigurations. For example, it can maintain a lookup table, have aninternal state-transition-machine, or hash the set of description files.This allows caching per device. If cache size becomes a limiting factor,configuration numbers can be standardized for each device-type. Thisallows caching per device-type.

When applied to UPnP, the configuration identifiers could be included inssdp:alive messages. If an UPnP device sends out two ssdp:alive messageswith the same configuration number, this ensures that the deviceconfiguration is the same (same root device, embedded devices,services). This allows control points to (indefinitely) maintain a listof triplets: (device ID, configuration number, descriptions). Such anextended cache eliminates the need to download the same descriptiontwice.

Note that the present invention can be used in more advanced systemsthan in the UPnP 1.0 device architecture. UPnP 1.0 does not allow that adevice changes its configuration while in operation. A device has tofirst leave the network (by sending bye-bye messages), and thenreappear, announcing a new configuration. This can lead to inconsistentcaches, for example when a control point misses the bye-bye messages, itcan be unaware of the configuration change. Using the proposedconfiguration number, devices can change their configuration whilecontinuing to offer services to the network without a full interruption.As an extension a “in transition” bit can be added to the discoverymessages, which warns control points that a configuration change isabout to happen.

A further advantage is that a control point, which is using a particularaspect of a device can continue to do so, if that aspect remainsunchanged and it has already cached the new configuration.

A further advantage of configuration numbers is that a control point caninclude them in actions sent to a device. A device would refuse anyactions that include the wrong configuration number. This eliminatesracing conditions, where the control point bases its issued actions on adevice configuration that has already changed.

In a specific embodiment the unique configuration identifier comprisesan identification of the second device. When caching is based on (deviceID, config. number)=>configuration, config. number need only be uniquetogether with the deviceID. This simplifies assigning of uniqueconfiguration IDs.

In an embodiment the configuration description comprises anidentification of the services offered by the second device. It is oftenthe offered services that need to be known by the first device, e.g.when the first device is adapted for using services on the seconddevice.

Thereby a single configuration number defines all present services inthe device, removing the need for downloading their descriptions.Therefore, a single configuration number can be used for effectivecaching of a number of description files (of devices, embedded devicesand services).

In an embodiment the configuration identifier is a device specificconfiguration number uniquely identifying the configuration of thedevice. A number as identifier can be represented by relatively fewbits, whereby a very low bandwidth is needed to communicate theidentifier, reducing the load on the network.

In an embodiment the configuration descriptions on the storage medium,which have not been accessed for the longest time interval, are deletedfrom the storage medium. Thereby a limited sized storage medium can beused decreasing the chance of running out of memory.

In an embodiment the second device generates the configurationidentifier by deriving it from the configuration description usingfingerprinting. Thereby configuration description specific configurationidentifiers can easily be obtained. Fingerprinting could be performed byperforming hashing on the configuration description; an example of sucha hashing technique is MD5. Some of the existing fingerprintingtechniques have a small chance of gene-rating the same configurationidentifiers for two different configuration descriptions. In this case,the technique could be combined with a history check, whereby the seconddevice checks the generated configuration identifier with previouslyused identifiers to ensure that it has not been used before for anotherconfiguration description. There are alternative ways of obtainingconfiguration specific configuration identifiers. These could e.g. be tohave a predefined look-up table uniquely linking the possibleconfiguration identifiers with configuration descriptions. Another waycould be to have a configuration identifier being a number, which isincremented each time a new configuration description is defined.Incrementing configuration identifiers makes caching of oldconfigurations impossible, since even if the second device reverts to anold configuration, it will give it a new configuration number that isunknown to the first device.

In a specific embodiment the first device is a control point in a UPnPnetwork, and the second device is a UPnP device being part of the UPnPnetwork. Especially in UPnP networks, the advantages of the presentinvention as described above are significant. Description information inUPnP is typically retrieved using a set of HTTP requests, separate callsfor root device, embedded devices and their services and separate callsfor “getcapability( )” like functions that are often defined inservices. The presence of a configuration number that signifies that allthese calls are cached eliminates the need for these calls.

The invention also relates to an apparatus for maintaining an up-to-dateconfiguration description of a second communication device, saidapparatus comprises a storage medium and is adapted for storing on saidstorage medium configuration descriptions being uniquely identified by aconfiguration identifier, the apparatus comprises:

means for receiving, from the second device, information comprising aconfiguration identifier uniquely identifying the configuration of thesecond device, means for checking whether the configuration descriptionidentified by the received configuration identifier is already stored onthe storage medium,

means for, if said configuration description identified by theconfiguration identifier is stored on the storage medium, setting theconfiguration description corresponding to the received configurationidentifier as the active configuration description of the second device,

means for, if said configuration description identified by theconfiguration identifier is not stored on the storage medium, requestingand receiving the configuration description from said second device,storing said configuration description together with said configurationidentifier on said storage medium and setting the configurationcorresponding to the received configuration identifier as the activeconfiguration description of the second device.

The invention also relates to an UPnP control point for maintaining anup-to-date configuration description of a UPnP device, said controlpoint comprises a storage medium and is adapted for storing on saidstorage medium configuration descriptions being uniquely identified by aconfiguration identifier, the control point comprises:

means for receiving from the second device information comprising aconfiguration identifier uniquely identifying the configuration of theUPnP device,

means for checking whether the configuration description identified bythe received configuration identifier is already stored on the storagemedium,

means for, if said configuration description identified by theconfiguration identifier is stored on the storage medium, setting theconfiguration description corresponding to the received configurationidentifier as the active configuration description of the UPnP device,

means for, if said configuration description identified by theconfiguration identifier is not stored on the storage medium, requestingand receiving the configuration description from said UPnP device,storing said configuration description together with said configurationidentifier on said storage medium and setting the configurationcorresponding to the received configuration identifier as the activeconfiguration description of the UPnP device.

In the following preferred embodiments of the invention will bedescribed referring to the figures, where

FIG. 1 is an illustration according to prior art of the method for afirst communication device of maintaining an up-to-date configurationdescription of a second communication device, when the networkconnection between the two devices is interrupted,

FIG. 2 is an illustration according to the present invention of themethod for a first communication device of maintaining an up-to-dateconfiguration description of a second communication device, when thenetwork connection between the two devices is interrupted,

FIG. 3 is an illustration according to prior art of the method for afirst communication device of maintaining an up-to-date configurationdescription of a second communication device, when the configuration ofthe second communication device changes,

FIG. 4 is an illustration according to the present invention of themethod for a first communication device of maintaining an up-to-dateconfiguration description of a second communication device, when theconfiguration of the second communication device changes,

FIG. 5 is an illustration according to prior art of the method for afirst communication device of maintaining an up-to-date configurationdescription of a second communication device, when the configuration ofthe second communication device changes between two presently usedconfigurations,

FIG. 6 is an illustration according to the present invention of themethod for a first communication device of maintaining an up-to-dateconfiguration description of a second communication device, when theconfiguration of the second communication device changes between twopresently used configurations, and

FIG. 7 illustrates a method of keeping up-to-date service descriptionsaccording to the present invention.

FIG. 1 is an illustration according to prior art of the method for afirst communication device B of maintaining an up-to-date configurationdescription of a second communication device A, when the networkconnection between the two devices is interrupted. Initially in step 1respectively the first device B and the second device A are illustrated.In the following examples the first device B is referred to as an UPnPcontrol point, and the second device A is referred to as UPnP controlleddevice. Both A and B are placed for communication in a UPnP network. Thesecond device A has a configuration and in this example theconfiguration comprises providing a service with features s1, s2 and s3.In step 1 the two devices are still not aware of each other. In step 2device A sends one or more announcement messages AM to device B, deviceB receives these announcement messages, and by checking its cachememory, it realizes that it does not have the configuration descriptionof device A. In step 3 the device B downloads the configurationdescription of device A and stores the configuration description in itscache as the active configuration description of device A. As long asthe UPnP device A does not change its configuration, device B hasknowledge of the configuration of A. In step 4 the network connectionbetween A and B is interrupted, e.g. because of a network hiccup, andthe cache of device B is timed out, whereby the cache informationrelated to A is deleted. In step 5 the network connection is restored,and because the cache is timed out, step 3 has to be repeated. Device Bdownloads the configuration description of device A and stores theconfiguration description in its cache as the active configurationdescription of device A.

FIG. 2 is an illustration according to the present invention displayingthe situation from FIG. 1, but according to the present invention. Instep 1 the two devices are still not aware of each other. Device A has aconfiguration description comprising providing a service with featuress1, s2 and s3. The service description has been identified in the deviceA with a configuration identifier being C1. In step 2 device A sends oneor more announcement messages AM to device B. Together with theannouncement messages it sends the configuration identifier C1. Thedevice B checks its cache memory and realizes that it does not have theconfiguration identified by C1. In step 3 the device B downloads theconfiguration description of device A and stores the configurationdescription and the corresponding configuration identifier in its cacheand sets it as the active configuration description of device A. In step4 the network connection between A and B is interrupted, e.g. because ofa network hiccup. Since there is no time out, the cache informationrelated to A is not deleted. However, since no communication is receivedfrom B, A sets device B to “inactive”. In step 5, corresponding to step2, device A sends one or more announcement messages AM to device B,device B receives these announcement messages, together with theconfiguration identifier C1, and by checking its cache memory itrealizes that it has already stored the configuration description ofdevice A identified by the configuration identifier C1. It thereforesets the corresponding configuration description as the activeconfiguration description of device A.

Whenever a configuration description needs to be deleted from thestorage medium (to avoid running out of memory), the configurationdescription that has not been accessed for the longest time interval ofall present configuration descriptions could be deleted from the storagemedium. Thereby a limited sized storage medium can be used decreasingthe chance of running out of memory. In general, other cachingtechniques could be applied.

FIG. 3 is an illustration according to prior art of the method for afirst communication device of maintaining an up-to-date configurationdescription of a second communication device when the configuration ofthe second communication device changes. In step 1 the two devices areready for mutual communication, and the configuration description storedin the cache of the control point B comprises that A provides a servicewith features s1, s2, s3, corresponding to the actual configuration ofA. In step 2 device A changes configuration and sends bye-bye BBmessages to B. This bye-bye BB message is received by B, which clearsthe configuration description of A from its cache. Next in step 3, thedevice A sends one or more announcement messages AM to device B, deviceB receives these announcement messages, and by checking its cache memoryit realizes that it does not have the configuration description ofdevice A. In step 4 the device B downloads the configuration descriptionof device A and stores the configuration description in its cache as theactive configuration description of device A. As long as the device Adoes not change its configuration, device B has again knowledge of theconfiguration of A.

FIG. 4 is an illustration according to the present invention of themethod for a first communication device of maintaining an up-to-dateconfiguration description of a second communication device, when theconfiguration of the second communication device changes. In step 1 thetwo devices are ready for mutual communication, and the configurationdescription stored in the cache of the control point B comprises adescription of A being configured according to the configurationidentifier C1. The description stored in B corresponds to theconfiguration identifier of the actual configuration of A. In step 2device A changes configuration to one having the configurationidentifier C2 and sends bye-bye BB messages to B. This bye-bye BBmessage is received by B, which does not clear the configurationdescription of A from its cache, but leaves it stored in the cachetogether with the configuration identifier C1, but not as an activeconfiguration. In step 3 device A sends one or more announcementmessages AM to device B. Together with the announcement messages itsends the configuration identifier C2. The device B checks its cachememory and realizes that it does not have the configuration identifiedby C2. In step 4 the device B downloads the configuration description ofdevice B and stores the configuration description and the correspondingconfiguration identifier C2 in its cache and sets it as the activeconfiguration description of device A.

FIG. 5 is an illustration according to prior art of the method for afirst communication device of maintaining an up-to-date configurationdescription of a second communication device, when the configuration ofthe second communication device changes between two presently usedconfigurations. In step 1 the two devices are ready for mutualcommunication, and the configuration description stored in the cache ofthe control point B comprises that A provides a service with features s1and s4, corresponding to the actual configuration of A. In step 2 deviceA changes configuration and sends bye-bye BB messages to B. This bye-byeBB message is received by B, which clears the configuration descriptionof A from its cache. Next in step 3 the device A sends one or moreannouncement messages AM to device B. Device B receives theseannouncement messages, and by checking its cache memory it realizes thatit does not have the configuration description of device A. Device Bthen downloads the configuration description of device A and stores theconfiguration description in its cache as the active configurationdescription of device A. As long as the device A does not change itsconfiguration, device B has again knowledge of the configuration of A.In step 4 device A changes configuration back again and sends bye-bye BBmessages to B. This bye-bye BB message is received by B, which clearsthe configuration description of A from its cache. Next in step 5 thedevice A sends one or more announcement messages AM to device B. DeviceB receives these announcement messages, and by checking its cache memoryit realizes that it does not have the configuration description ofdevice A. Device B then downloads the configuration description ofdevice A and stores the configuration description in its cache as theactive configuration description of device A. As long as the UPnP deviceB does not change its configuration, device B has again knowledge of theconfiguration of A.

FIG. 6 is an illustration according to the present invention of themethod for a first communication device of maintaining an up-to-dateconfiguration description of a second communication device, when theconfiguration of the second communication device changes between twopresently used configurations. In step 1 the two devices are ready formutual communication, and configuration description stored in the cacheof the control point B comprises a description of that A is configuredaccording to the configuration identifier C2. It further comprises aconfiguration description identified by configuration identifier C1. Instep 2 device A changes configuration to one having the configurationidentifier C1 and sends bye-bye BB messages to B. This bye-bye BBmessage is received by B, which does not clear the configurationdescription of A from its cache but lets it remain stored in the cachetogether with the configuration identifier C2, but not as an activeconfiguration. In step 3 device A sends one or more announcementmessages AM to device B. Together with the announcement messages itsends the configuration identifier C1. The device B checks its cachememory and realizes that it does have the configuration identified by C1and sets the corresponding configuration description as the activeconfiguration of device A. In step 4 device A changes configuration backto the one having the configuration identifier C2 and sends bye-bye BBmessages to B. This bye-bye BB message is received by B, which does notclear the configuration description of A from its cache but lets itremain stored in the cache together with the configuration identifierC2, but not as an active configuration. In step 5 device A sends one ormore announcement messages AM to device B. Together with theannouncement messages it sends the configuration identifier C2. Thedevice B checks its cache memory and realizes that it does have theconfiguration identified by C2 and sets the corresponding configurationdescription as the active configuration of device A.

In FIG. 7 the method is illustrated to be used by an apparatus forhandling configuration numbers for keeping up-to-date servicedescriptions of controlled devices. The apparatus could e.g. be acontrol point in an UPnP network. Initially in the step 701 theapparatus receives the configuration identifier C# from an UPnP device.This could be received together with all messages from the UPnP devicein order to ensure that the configuration description used in thecontrol point is always up-to-date. In step 703 the apparatus checks itscache memory to see if it has already stored a configuration descriptionhaving this configuration identifier. In step 705 a correspondingconfiguration identifier has been found in the cache memory of thecontrol point, and the control point sets the correspondingconfiguration description as the present configuration of the UPnPdevice. In 707 the configuration identifier is not found in the cachememory and the control point downloads the configuration description ofthe UPnP device and stores the configuration description and thecorresponding configuration identifier in its cache. Finally, in 709 thecontrol point sets the downloaded configuration description of device Aas active.

It is noted that the above may be implemented as general- orspecial-purpose programmable microprocessors, Digital Signal Processors(DSP), Application Specific Integrated Circuits (ASIC), ProgrammableLogic Arrays (PLA), Field Programmable Gate Arrays (FPGA), specialpurpose electronic circuits, etc., or a combination thereof.

It should be further noted that the above-mentioned embodimentsillustrate rather than limit the invention, and that those skilled inthe art will be able to design many alternative embodiments withoutdeparting from the scope of the appended claims. In the claims, anyreference signs placed between parentheses shall not be construed aslimiting the claim. The word ‘comprising’ does not exclude the presenceof other elements or steps than those listed in a claim. The inventioncan be implemented by means of hardware comprising several distinctelements, and by means of a suitably programmed computer. In a deviceclaim enumerating several means, several of these means can be embodiedby one and the same item of hardware. The mere fact that certainmeasures are recited in mutually different dependent claims does notindicate that a combination of these measures cannot be used toadvantage.

1. A method for a first communication device (B) of maintaining anup-to-date configuration description of a second communication device(A), said first device (A) comprises a storage medium and is adapted forstoring on said storage medium configuration descriptions being uniquelyidentified by a configuration identifier (C#), the method comprises thesteps of: receiving (701) from the second device A informationcomprising a configuration identifier (C#) uniquely identifying theconfiguration of the second device (A), checking (703) whether theconfiguration description identified by the received configurationidentifier (C#) is already stored on the storage medium, if saidconfiguration description is already stored on the storage medium,setting (705) the configuration description corresponding to thereceived configuration identifier (C#) as the active configurationdescription of the second device (A), if said configuration descriptionidentified by the configuration identifier (C#) is not stored on thestorage medium, requesting and receiving (707) the configurationdescription from said second device (A), storing said configurationdescription together with said configuration identifier (C#) on saidstorage medium and setting (709) the configuration corresponding to thereceived configuration identifier (C#) as the active configurationdescription of the second device (A).
 2. A method according to claim 1,wherein the unique configuration identifier (C#) comprises anidentification of the second device (A).
 3. A method according to claim1, wherein the configuration description comprises an identification ofthe services offered by the second device (A).
 4. A method according toclaim 1, wherein the configuration identifier (C#) is a device specificconfiguration number uniquely identifying the configuration of thedevice.
 5. A method according to claim 1, wherein the configurationdescriptions on the storage medium, which have not been accessed for thelongest time period, are deleted from the storage medium.
 6. A methodaccording to claim 1, wherein the second device generates theconfiguration identifier (C#) by deriving it from the configurationdescription using fingerprinting.
 7. A method according to claim 1,wherein the first device (B) is a control point in an UPnP network, andthe second device (A) is an UPnP device being part of the UPnP network.8. An apparatus for maintaining an up-to-date configuration descriptionof a second communication device, said apparatus comprises a storagemedium and is adapted for storing on said storage medium configurationdescriptions being uniquely identified by a configuration identifier,the apparatus comprises: means for receiving from the second deviceinformation comprising a configuration identifier uniquely identifyingthe configuration of the second device, means for checking whether theconfiguration description identified by the received configurationidentifier is already stored on the storage medium, means for, if saidconfiguration description identified by the configuration identifier isstored on the storage medium, setting the configuration descriptioncorresponding to the received configuration identifier as the activeconfiguration description of the second device, means for, if saidconfiguration description identified by the configuration identifier isnot stored on the storage medium, requesting and receiving theconfiguration description from said second device, storing saidconfiguration description together with said configuration identifier onsaid storage medium and setting the configuration corresponding to thereceived configuration identifier as the active configurationdescription of the second device.
 9. An UPnP control point formaintaining an up-to-date configuration description of a UPnP device,said control point comprises a storage medium and is adapted for storingon said storage medium configuration descriptions being uniquelyidentified by a configuration identifier, the control point comprises:means for receiving from the second device information comprising aconfiguration identifier uniquely identifying the configuration of theUPnP device, means for checking whether the configuration descriptionidentified by the received configuration identifier is already stored onthe storage medium, means for, if said configuration descriptionidentified by the configuration identifier is stored on the storagemedium, setting the configuration description corresponding to thereceived configuration identifier as the active configurationdescription of the UPnP device, means for, if said configurationdescription identified by the configuration identifier is not stored onthe storage medium, requesting and receiving the configurationdescription from said UPnP device, storing said configurationdescription together with said configuration identifier on said storagemedium and setting the configuration corresponding to the receivedconfiguration identifier as the active configuration description of theUPnP device.